<?php


class Solution
{
    public function IsPalindrome($integer)
    {
        if ($integer == 0) {
            return true;
        }
        if ($integer < 0) {
            return false;
        }

        if ($integer > (pow(2, 31) - 1)) {
            return false;
        }


        if ($integer < -(pow(2, 31))) {
            return false;
        }

        $intString = (string)$integer;
        $intLen = strlen($intString);
        $newInt = '';
        $i = $intLen;
        while ($i >= 0) {
            $newInt .= $intString{$i};
            $i--;
        }
        $i = 0;
        while ($i < $intLen) {
            if ($intString{$i} != $newInt{$i}) {
                return false;
            }
            $i++;
        }
        return true;
    }

    public function IsPalindromeTwo($integer)
    {
        if ($integer < 0 || ($integer % 10 == 0 && $integer != 0)) {
            return false;
        }

        if ($integer > (pow(2, 31) - 1)) {
            return false;
        }


        if ($integer < -(pow(2, 31))) {
            return false;
        }

        $revertedNumber = 0;
        while ($integer > $revertedNumber) {
            $revertedNumber = $revertedNumber * 10 + $integer % 10;
            $integer /= 10;
        }

        return intval($integer) == $revertedNumber || intval($integer) == intval($revertedNumber / 10);
    }


}

$int = 11;
$res = (new Solution())->IsPalindromeTwo($int);
var_dump($res);